/**
 * 密码格式验证
 * @param rule 验证规则（不少于6位）
 * @param value 需要验证的值
 * @param callback 回调函数
 */
export const validatePassword = (rule, value, callback) => {
	if (value.length < 6) {
		callback(new Error('密码长度不得小于6位'));
	} else {
		callback();
	}
};

/**
 * 手机号码格式验证
 * @param rule 验证规则
 * @param value 需要验证的值
 * @param callback 回调函数
 */
export const validateMobile = (rule, value, callback) => {
	let reg = /^[1][0-9]{10}$/;
	// 大陆手机号： 开头1 ，后边跟10位数字
	//台湾：09开头后面跟8位数字
	// 香港：9或6开头后面跟7位数字
	//澳门：6开头  后跟7位数字，共8位
	//let reg = /[1][0-9]\d{9}$|([6|9])\d{7}$|[0][9]\d{8}$|6\d{7}$/
	if (!reg.test(value)) {
		callback(new Error('手机号格式错误'));
	} else {
		callback();
	}
};
/**
 * 手机号码格式验证
 * @param value 需要验证的值
 */
export const isMobile = (value) => {
	let reg = /^[1][0-9]{10}$/;
	// 大陆手机号： 开头1 ，后边跟10位数字
	//台湾：09开头后面跟8位数字
	// 香港：9或6开头后面跟7位数字
	//澳门：6开头  后跟7位数字，共8位
	//let reg = /[1][0-9]\d{9}$|([6|9])\d{7}$|[0][9]\d{8}$|6\d{7}$/
	return reg.test(value)
};
/**
 * 身份证号码格式验证
 * @param rule 验证规则（是否满足18位）
 * @param value 需要验证的值
 * @param callback 回调函数
 */
export const validateIDCard = (rule, value, callback) => {
	const reg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
	if (!reg.test(value)) {
		callback(new Error('身份证号码格式错误'));
	} else {
		callback();
	}
};
/**
 * 邮箱格式验证
 * @param value 需要验证的值
 */
export const isEmail = (value) => {
	let reg = /^[\w.+-\u4e00-\u9fa5]+@[\w-]+(\.[\w-]+)+$/
	return reg.test(value)
};
/**
 * 邮箱格式验证
 * @param rule 验证规则
 * @param value 需要验证的值
 * @param callback 回调函数
 */
export const validateEmail = (rule, value, callback) => {
	if(!value){
		callback();
		return;
	}
	let reg = /^[\w.+-\u4e00-\u9fa5]+@[\w-]+(\.[\w-]+)+$/
	if (!reg.test(value)) {
		callback(new Error('邮箱格式错误'));
	} else {
		callback();
	}
};
/**
 * url格式验证
 * @param rule 验证规则
 * @param value 需要验证的值
 * @param callback 回调函数
 */
export const validateUrl = (rule, value, callback) => {
	if(!value){
		callback();
		return;
	}
	var reg = /^(https?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?$/;
  if (!reg.test(value)) {
    callback(new Error('请输入带有https或http的完整Url地址'));
  } else {
    callback();
  }
};
/**
 * 用户名
 * @param rule 验证规则（不含特殊字符）
 * @param value 需要验证的值
 * @param callback 回调函数
 */
export const validateUsername = (rule, value, callback) => {
  var reg = /^[\w]{1,16}$/;
  if (!reg.test(value)) {
    callback(new Error('格式不符合要求，请按照提示输入正确用户名'));
  } else {
    callback();
  }
};

/**
 * QQ格式验证
 * @param rule 验证规则
 * @param value 需要验证的值
 * @param callback 回调函数
 */
export const validateQQ = (rule, value, callback) => {
	if(!value){
		callback();
		return;
	}
	let reg = /^[1-9][0-9]{4,}$/
	if (!reg.test(value)) {
		callback(new Error('QQ格式错误'));
	} else {
		callback();
	}
};
/**
 * 数字格式验证
 * @param rule 验证规则
 * @param value 需要验证的值
 * @param callback 回调函数
 */
export const validateNumber = (rule, value, callback) => {
	if(!value){
		callback();
		return;
	}
	let reg = /^[0-9]{1,}$/
	if (!reg.test(value)) {
		callback(new Error('格式错误'));
	} else {
		callback();
	}
};
